package com.ftg.learn.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.ftg.learn.config.RedisClusterConfig;
import com.ftg.learn.entity.LearnStudentEntity;
import com.ftg.learn.service.LearnStuRedisService;
import com.ftg.learn.vo.StudentListVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author 布衣
 */
@RestController
//knife4j 别名
@Tag(name = "redis缓存")

//用于修饰类，表示请求地址前缀  ， 表示方法的请求方式
@RequestMapping("/redis")
//
//@Component  : 不区分业务
//@Service    : 业务类
//@Repository : 数据访问类
//@Controller : 控制器类
//@RestController : 控制器类
//
//
//@ResponseBody ： 当前类里面的方法返回值 ，自动转换为json字符串并返回

public class LearnStuRedisController {

    @Resource
    private LearnStuRedisService learnStuRedisService;

    @GetMapping("/list")
//    @RequestMapping(value = "/list",method = RequestMethod.GET)
//    @PostMapping  ： 一般用于添加
//    @PutMapping   ：修改
//    @DeleteMapping  ：删除
//    @GetMapping : 用于查询

    //knfife4j 表示方法别名
    @Operation(summary = "查询学生列表")
    public List<StudentListVo> list(){
        return learnStuRedisService.list();
    }

    @PostMapping("/add")
    public String add(@RequestBody LearnStudentEntity lse) throws JsonProcessingException {
        return learnStuRedisService.add(lse);
    }

    @PostMapping("/modify")
    public String modify(@RequestBody LearnStudentEntity lse) throws JsonProcessingException {
        return learnStuRedisService.modify(lse);
    }

}
